In recent years, there has been a growth in interest in disk drive arrays which consist of a number of disk drives connectable to a using system via one or more controller elements which control the transfer of data to and from the disk drives. A disk array is designed to provide high capacity data storage, high reliability and high data transfer rates to and from the using system.
A number of different array schemes have been proposed. A paper entitled `A Case for Redundant Arrays of Inexpensive Disks (RAID)` (ACM SIGMOD conference proceedings, Chicago, Ill., Jun. 1-3, 1988, pp. 109-116) details five levels of array (RAIDS 1 to 5) which provide different levels of data management. Each of the RAID levels permits users to increase their data storage capacity by linking together a number of inexpensive disk drives. The RAID system provides protection against loss of data through the failure of a drive by either storing two copies of the data on two drives (RAID 1) or by striping the data across two or more drives of the array, calculating the parity for the striped data and storing the parity data on a different drive. In the event that one of the data holding drives fails, it is possible using the parity data and the remaining data of the stripe to reconstruct the data on the failed drive (RAIDs 2 to 5).
It is known that the synchronization of the spindle motors of multiple disk drives can have performance advantages in an array of disk drives in which data is striped across the drives of the array. This is because during an operation to read the data, there will be a delay in accessing the data due to rotational latency. In a single disk drive, the average rotational latency is T/2 where T is the period of rotation of the disk. For a disk rotating at 3600 RPM, the average latency is 8.3 ms.
If the disk drives of the array are unsynchronized, the average rotational latency to locate the required data once the head has arrived on the correct track will be N.times.T/(N+1) where N is the number of disk drives across which the data is spread. For an array of four drives, this average latency is 13 ms, with the figure increasing with an increase in the number of drives in the array. If however, the disk drives are synchronized, the average latency is reduced to the figure for a single drive thus improving the performance of the array.
To date, spindle synchronization has been achieved using two main techniques.
In a first technique, one of the disk drives is designated as the master drive and the remaining drives are designated as slave drives. Such a technique is described in U.S. Pat. No. 3,893,178 and U.S. Pat. No. 4,907,105. The master drive is responsible for the synchronization of the slave drives and achieves this by issuing `synchronization` pulses once per revolution to each of the slave drives over a cable interconnecting the master drive and slave drives. The synchronization pulse is used by the slave drives to lock their motors to this timing. The synchronization cable is separate from the link used to interface the disk drive to the system on which commands, status and data are sent.
In a second synchronization technique, the disk drives are synchronized to an external signal provided by the controller or other means. Such a technique is described in EP 320107 where a master controller connected to five disk drives issues a spindle reference signal to each of the drives over a lead. This `synchronizing` lead is in addition to the master channel over which data and commands pass between the controller and disk drives. At each drive, the spindle reference signal is compared with a drive index pulse produced every revolution from a mark on the disk and based on this comparison the disk drive determines whether the disk motor should be slowed down or speeded up to achieve synchronization of the reference signal and the index pulse.
The second technique described in EP 320107 has the advantage over the first technique in that synchronization is not lost in the event that the master drive should fail. However in both techniques, an extra line is required in addition to the data and command interface between disk drives and control system in order to achieve synchronization.
Although synchronization is obviously beneficial in disk array environments, there are advantages to be gained in using synchronization in a system having a single disk drive attached to a controller. If the index mark on a disk in the single drive is synchronized to a signal provided by the controller, the controller can use the knowledge of the rotational position of the disk drive gained from the synchronization, and its knowledge of the location on the disk drive of data it requires, to determine the most efficient way of accessing the data. For example, if the controller requires two blocks of data from two different locations on a disk, it can use its knowledge of the rotational position of the disk to determine which of the two blocks will be passing first under the read/write head. It can then issue the read commands for the two blocks of data in the most efficient manner.